package woa.tree.binary.test20230801;

import woa.tree.binary.TreeNode;

/**
 * @author wangpeng
 * @date 2023/8/1 19:37
 */
public class Traversal {

    public static void preorder(TreeNode root) {
        if (root == null) {
            return;
        }
        print(root);
        preorder(root.left);
        preorder(root.right);
    }

    public static void inorder(TreeNode root) {
        if (root == null) {
            return;
        }
        inorder(root.left);
        print(root);
        inorder(root.right);
    }

    public static void postorder(TreeNode root) {
        if (root == null) {
            return;
        }
        postorder(root.left);
        postorder(root.right);
        print(root);
    }

    private static void print(TreeNode root) {
        System.out.println(root);
    }

    public static void main(String[] args) {
        TreeNode node1 = new TreeNode(1);
        TreeNode node2 = new TreeNode(2);
        TreeNode node3 = new TreeNode(3);
        TreeNode node4 = new TreeNode(4);
        TreeNode node5 = new TreeNode(5);
        TreeNode node6 = new TreeNode(6);
        TreeNode node7 = new TreeNode(7);

        node1.left = node2;
        node1.right = node3;
        node2.left = node4;
        node2.right = node5;
        node3.left = node6;
        node3.right = node7;

        System.out.println("=========前序=========");
        preorder(node1);
        System.out.println("=========中序=========");
        inorder(node1);
        System.out.println("=========后序=========");
        postorder(node1);
    }
}
